import groupBy from 'lodash/groupBy';
import { dictionaryList } from '@/services/dictionary';
/*
字典model
state 中存储字典字段
*/
export default {
    namespace: 'dictionary',
    state: {
        // ...  codes 中的字段做key
        // 学历字典
        agreeType: [],
        // 性别字典
        sexType: [],
        // 员工职级字典
        employeeLevelType: [],
        // 东南亚国家字典
        asian: [],
        // 省份字典
        province: [],
        // 城市
        city: [],
        // 区字典
        area: [],
        // 行业字典
        industryType: [],
        // // 职位职级
        // postType: []
        // 与本人的关系
        emergencyRelationship: [],
        // 工作月份
        workMonth: [],
        // 工作年份
        workYear: [],
        // 是否同住
        liveTogether: []
    },
    effects: {
        /**
         * @param {[string]} codes 字典code集合
         * isShowChildFormat 是否展示树状 1展示 0 不展示,只有 codes 传省市区才有多级，默认不做树状展示
         * 想要省市区树形数据 调用 getCascaderOptions 方法获取
         */
        *fetchDictionaryList({ payload }, { put, call }) {
            const response = yield call(dictionaryList, payload);
            if (response.code === 10000) {
                yield put({
                    type: 'saveDictionaryList',
                    payload: {
                        data: response.data
                    }
                });
            }
        }
    },
    reducers: {
        /**
         * 按字典的 code 值存储数据
         * @returns {object}
         */
        saveDictionaryList(state, { payload }) {
            const { data } = payload;
            const obj = groupBy(data, 'code');
            return {
                ...state,
                ...obj
            };
        }
    }
};
